home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 4 / Info_Mac IV CD-ROM (Pacific HiTech Inc.)(August 1994).iso / Development / Source / GENetReleaseƒ / GELibHeaders / List.h < prev    next >
Text File  |  1994-03-07  |  959b  |  61 lines

  1. /*
  2.     List.h
  3.     
  4.     Routines for maintaining ordered linked lists
  5.     
  6.     For Graphic Elements release version 1.0b1
  7.  
  8.     Copyright 1993, 1994 by Al Evans -- all rights reserved
  9.     
  10.     3/7/94
  11.         
  12. */
  13.  
  14. #ifndef LLISTS
  15. #define LLISTS
  16.  
  17. typedef struct LMember *LMemberPtr;
  18.  
  19. typedef struct LMember {
  20.     LMemberPtr        next;
  21.     long            data;
  22. } LMember;
  23.  
  24. typedef struct LHeader *LHeaderPtr;
  25.  
  26. typedef struct LHeader {
  27.     LMemberPtr        listHead;
  28.     LMemberPtr        free;
  29.     LHeaderPtr        nextChunk;
  30.     short            entrySize;
  31.     short            chunkSize;
  32. } LHeader;
  33.  
  34. typedef Boolean (*CompareProc) (Ptr p1, Ptr p2);
  35.  
  36. #ifdef __cplusplus
  37. extern "C" {
  38. #endif
  39.  
  40. LHeaderPtr InitList(short chunkSize, short entrySize);
  41.  
  42. LMemberPtr AllocateEntry(LHeaderPtr thisList);
  43.  
  44. void InsertEntry(LHeaderPtr thisList, LMemberPtr thisMember, CompareProc goesAfter);
  45.  
  46. void DeleteEntry(LHeaderPtr thisList, LMemberPtr thisMember);
  47.  
  48. void ClearList(LHeaderPtr thisList);
  49.  
  50. void DeleteList(LHeaderPtr thisList);
  51.  
  52. #ifdef __cplusplus
  53. }
  54. #endif
  55.  
  56. #endif
  57.  
  58.  
  59.  
  60.  
  61.